package com.ruoyi.eqmonitor.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 巡检事件对象 opt_patrol_event
 * @author ruoyi
 * @date 2022-12-19
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class OptPatrolEvent extends BaseEntity{

    private static final long serialVersionUID = 1L;

    /** Id */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /** 任务Id */
    @Excel(name = "任务Id")
    private Long taskId;

    /** 事件编码 */
    @Excel(name = "事件编码")
    private String code;

    /** 事件名称 */
    @Excel(name = "事件名称")
    private String name;

    /** 事件来源Id */
    @Excel(name = "事件来源Id")
    private Long sourceId;

    /** 事件来源名称 */
    @Excel(name = "事件来源名称")
    private String sourceName;

    /** 事件类型Id */
    @Excel(name = "事件类型Id")
    private Long typeId;

    /** 事件类型名称 */
    @Excel(name = "事件类型名称")
    private String typeName;

    /** 事件等级Id */
    @Excel(name = "事件等级Id")
    private Long levelId;

    /** 事件等级名称 */
    @Excel(name = "事件等级名称")
    private String levelName;

    /** 事发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "事发时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date incidentTime;

    /** 上报人Id */
    @Excel(name = "上报人Id")
    private Long reportPersonId;

    /** 上报人姓名 */
    @Excel(name = "上报人姓名")
    private String reportPersonName;

    /** 上报时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 处置截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处置截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date disposeShouldFinishTime;

    /** 处置完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处置完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date disposeFinishTime;

    /** 处置单位Id */
    @Excel(name = "处置单位Id")
    private Long disposeDeptId;

    /** 处置单位名称 */
    @Excel(name = "处置单位名称")
    private String disposeDeptName;

    /** 处置意见 */
    @Excel(name = "处置意见")
    private String disposeContent;

    /** 处置反馈 */
    @Excel(name = "处置反馈")
    private String disposeDescription;

    /** 处置后照片 */
    @Excel(name = "处置后照片")
    private String disposeImgIds;

    /** 处置后视频 */
    @Excel(name = "处置后视频")
    private String disposeVideoIds;

    /** 处置后录音 */
    @Excel(name = "处置后录音")
    private String disposeRecordingIds;

    /** 处置时限 */
    @Excel(name = "处置时限")
    private String disposeTimeLimit;

    /** 指派意见 */
    @Excel(name = "指派意见")
    private String assignOpinion;

    /** 派遣次数 */
    @Excel(name = "派遣次数")
    private Long dispatchCount;

    /** 应核查时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "应核查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date needCheckDate;

    /** 核查状态 */
    @Excel(name = "核查状态")
    private Long checkStatus;

    /** 核查反馈结果 */
    @Excel(name = "核查反馈结果")
    private String checkResult;

    /** 核查时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "核查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkDate;

    /** 核查人员Id */
    @Excel(name = "核查人员Id")
    private Long checkPersonId;

    /** 核查人员名称 */
    @Excel(name = "核查人员名称")
    private String checkPersonName;

    /** 主管单位Id */
    @Excel(name = "主管单位Id")
    private Long competentDeptId;

    /** 主管单位名称 */
    @Excel(name = "主管单位名称")
    private String competentDeptName;

    /** 主管单位审核时限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "主管单位审核时限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTimeLimit;

    /** 主管单位审核人员Id */
    @Excel(name = "主管单位审核人员Id")
    private Long auditPersonId;

    /** 主管单位审核人员名称 */
    @Excel(name = "主管单位审核人员名称")
    private String auditPersonName;

    /** 审核反馈结果 */
    @Excel(name = "审核反馈结果")
    private String auditResult;

    /** 结案时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结案时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endEvtTime;

    /** 结案反馈结果 */
    @Excel(name = "结案反馈结果")
    private String endEvtResult;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 事件对象Id */
    @Excel(name = "事件对象Id")
    private Long objectId;

    /** 事件对象名称 */
    @Excel(name = "事件对象名称")
    private String objectName;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备类型Id */
    @Excel(name = "设备类型Id")
    private String deviceTypeId;

    /** 设备类型名称 */
    @Excel(name = "设备类型名称")
    private String deviceTypeName;

    /** 设备地址 */
    @Excel(name = "设备地址")
    private String deviceAddress;

    /** 事发地址 */
    @Excel(name = "事发地址")
    private String address;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal lng;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal lat;

    /** X */
    @Excel(name = "X")
    private BigDecimal x;

    /** Y */
    @Excel(name = "Y")
    private BigDecimal y;

    /** 执行片区Id */
    @Excel(name = "执行片区Id")
    private Long targetId;

    /** 执行片区名称 */
    @Excel(name = "执行片区名称")
    private String targetName;

    /** 事件内容 */
    @Excel(name = "事件内容")
    private String content;

    /** 图片Ids */
    @Excel(name = "图片Ids")
    private String imgIds;

    /** 视频Ids */
    @Excel(name = "视频Ids")
    private String videoIds;

    /** 状态(10事件上报 11事件受理 12派遣人员 13事件确认 14处置反馈 15事件核查 16核查反馈 17主管单位审核 18审核反馈 19事件完结) */
    @Excel(name = "状态(10事件上报 11事件受理 12派遣人员 13事件确认 14处置反馈 15事件核查 16核查反馈 17主管单位审核 18审核反馈 19事件完结)")
    private Long status;

    /** 报警Id */
    @Excel(name = "报警Id")
    private Long alarmId;

    /** 状态Ids */
    @Excel(name = "状态Ids")
    private String statusIds;

    //(0：排口；1：溢流井；2：断面)
    @TableField(exist = false)
    private Integer state;

    private String minorId;
    
    @TableField(exist = false)
    private String realDeviceCode;

}